systemd 为什么会有那么大的争议? 您所在的位置:网站首页 ubuntu manpage dhcpcd systemd 为什么会有那么大的争议?

systemd 为什么会有那么大的争议?

2023-03-23 06:12| 来源: 网络整理| 查看: 265

在主要发行版已经转向systemd的今天才回答这个问题,似乎有点晚。

人们不是对systemd有争议。人们恨systemd。

1. systemd的作者Lennart Poettering,其上一个项目PulseAudio,在并不成熟的状态下进入各大发行版。Poettering自己也将其称为“the software that currently breaks your audio”。他因此臭名昭著,人们显然不喜欢让这个人动init这么核心的组件。

2. Poettering受雇于Redhat。开源社区的一部分人把Redhat的任何动作解读为侵蚀其它发行版和一统开源社区的阴谋。

3. Poettering的三个主要项目:avahi, PulseAudio, systemd,全部借鉴自OS X。并且他在后续开发中也经常借鉴OS X和Windows(比如PulseAudio的统一音量控制)。开源社区的一部分人恨这种跪舔闭源软件的行为。

4. Poettering和他的小伙伴们有这样的特点:

1) 生产力极高。systemd以不可思议的速度刷版本号,而且每次更新都有新功能。Linux的核心服务大部分都很有年头了,systemd的开发节奏和它们反差甚大。

2) 代码质量不高。PulseAudio和systemd初期都有巨量的bug,经过很长时间才达到稳定。对于systemd这显然不符合人们的期望。Init应该由Linus这样的靠谱程序员而不是Poettering这种傻逼程序员负责,LOL.

3) 频繁变更设计和接口。systemd的新功能,最好都等几个版本再用。因为Poettering似乎是喜欢让用户的实践去打磨他的设计的。

4) 不考虑向后兼容。Poettering和小伙伴们有着极端的“只用正确的方法做事”的态度。如果某个用法过去可以工作,但不符合他们心目中“正确的方式”,他们会在新版本中毫不犹豫地将你break掉。这种态度屡次遭到Linus痛骂(由于udev和内核紧密集成)。

很多人不喜欢这种以飞速不断生产bug和不成熟设计的风格。实际上这更接近商业软件公司(比如微软)的开发风格,而这显然也会招黑。

5. systemd极端地奉行“只考虑Linux”,不接受任何改进非Linux系统兼容性的patch。由于systemd项目合并了udev, logind等基础设施,以及Gnome/KDE积极与systemd集成,这给其它开源内核的桌面用户(以及Debian这样的多内核发行版)造成了困扰。

6. 对比sysvinit,系统管理员不喜欢systemd:

1) systemd是用C而不是系统管理员熟悉的shell写成。

2) systemd的核心是单个binary,而不是一堆脚本和小程序拼凑而成,不符合所谓The Unix Way.

3) 喜欢重新发明轮子。systemd重新发明了一堆历史悠久的核心服务(通常是简化功能和配置):syslog, ntp, cron, fstab, dhcpcd, vt... 系统管理员更信赖他们熟悉的服务(尽管配置较为复杂)。而重新发明轮子总体上在开源社区是不被赞许的。

Linus曾经在采访中表达过对systemd的看法。基于Linus和Poettering的历史,大概很多人期待再一次痛骂吧。但作为一个用C写的大型monolithic软件的作者,Linus表示:(

Torvalds says he has no strong opinions on systemd

)

"When it comes to systemd, you may expect me to have lots of colourful opinions, and I just don't," Torvalds told iTWire in an interview. "I don't personally mind systemd, and in fact my main desktop and laptop both run it."In a reference to a spat he had with Kay Sievers, one of the main developers of systemd, Torvalds added: "Now, I don't get along with some of the developers and think they are a bit too cavalier about bugs and compatibility, but I'm also very much not in the camp of people who hate the very thought of systemd."iTWire: Systemd seems to depart to a large extent from the original idea of simplicity that was a hallmark of UNIX systems. Would you agree? And is this a good or a bad thing?

Linus Torvalds: So I think many of the "original ideals" of UNIX are these days more of a mindset issue than necessarily reflecting reality of the situation.

There's still value in understanding the traditional UNIX "do one thing and do it well" model where many workflows can be done as a pipeline of simple tools each adding their own value, but let's face it, it's not how complex systems really work, and it's not how major applications have been working or been designed for a long time. It's a useful simplification, and it's still true at *some* level, but I think it's also clear that it doesn't really describe most of reality.

It might describe some particular case, though, and I do think it's a useful teaching tool. People obviously still do those traditional pipelines of processes and file descriptors that UNIX is perhaps associated with, but there's a *lot* of cases where you have big complex unified systems.

And systemd is in no way the piece that breaks with old UNIX legacy. Graphical applications seldom worked that way (there are certainly _echoes_ of it in things like "LyX", but I think it's the exception rather than the rule), and then there's obviously the traditional counter-example of GNU emacs, where it really was not about the "simple UNIX model", but a whole new big infrastructure thing. Like systemd.

Now, I'm still old-fashioned enough that I like my log-files in text, not binary, so I think sometimes systemd hasn't necessarily had the best of taste, but hey, details..

很多人看到这个访谈,应该是一口老血喷到屏幕上吧...



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有